#if !defined(AFX_MANUALTAPEMOUNT_H__33797A4B_11FD_446A_ACF2_17FFB7BBFC5B__INCLUDED_)
#define AFX_MANUALTAPEMOUNT_H__33797A4B_11FD_446A_ACF2_17FFB7BBFC5B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ManualTapeMount.h : header file
//
#include "Util\MinButton.h"
#include "Util\MinLabel.h"

// Control Layer
class IWaferTapeMount;
class IStateRingHandler;
class IStateRobotBuffer;

// Process Layer
class IAutoManager;
class ITrsWaferTapeMount;

// Common Layer
class CDMControlCenter;
class CErrorCodeData;
class CWaferTapeMountPosData;
class CSystemData;
class CModelData;

/////////////////////////////////////////////////////////////////////////////
// CManualTapeMount dialog
#define MAX_TAPERMOUNT_PUSH_SW	24

class CManualTapeMount : public CDialog
{
private:

	IWaferTapeMount* m_lnkWaferTapeMount;
	ITrsWaferTapeMount* m_lnkTrsWaferTapeMount;
	IStateRingHandler* m_lnkStateRingHandler;
	IStateRobotBuffer* m_lnkStateRobotBuffer;
	
	CErrorCodeData* m_lnkErrorCodeData;
	CSystemData* m_lnkSystemData;
	CModelData* m_lnkModelData;
	CWaferTapeMountPosData* m_lnkWaferTapeMountPosData;
	
	void ErrorDisplay(int nErrorCode);
	BOOL m_bErrorDisplay;

	BOOL StartInitFlag;
	BOOL	m_bOldStatusPush[MAX_TAPERMOUNT_PUSH_SW];

public:
	UINT m_TimerID;
	BOOL m_TimerInitFlag;
// Construction
public:
	CManualTapeMount(IAutoManager* pAM, CDMControlCenter* pDMCC,CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CManualTapeMount)
	enum { IDD = IDD_MANUAL_TAPEMOUNT };
	CMinButton	m_bTMRWTapeUngrip;
	CMinButton	m_bTMRWTapeGrip;
	CMinButton	m_bTMAlignUp;
	CMinButton	m_bTMAlignDown;
	CMinButton	m_bTMWaferUp;
	CMinButton	m_bTMWaferDown;
	CMinButton	m_bTMWafer2VacOn;
	CMinButton	m_bTMWafer2VacOff;
	CMinButton	m_bTMWafer1VacOn;
	CMinButton	m_bTMWafer1VacOff;
	CMinButton	m_bTMRingVacOn;
	CMinButton	m_bTMRingVacOff;
	CMinButton	m_bTMRewinderUp;
	CMinButton	m_bTMRewinderDown;
	CMinButton	m_bTMPressUp;
	CMinButton	m_bTMPressDown;
	CMinButton	m_bTMFeedingUngrip;
	CMinButton	m_bTMFeedingGrip;
	CMinButton	m_bTMCutterUp;
	CMinButton	m_bTMCutterDown;
	CMinButton	m_bTMChuckUp;
	CMinButton	m_bTMChuckDown;
	CMinButton	m_bTMChangUngrip;
	CMinButton	m_bTMChangGrip;
	CMinButton	m_bExit;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CManualTapeMount)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	void ButtonInitial();
	void ButtonUpdate();
	// Generated message map functions
	//{{AFX_MSG(CManualTapeMount)
	afx_msg void OnExit();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnDestroy();
	virtual BOOL OnInitDialog();
	afx_msg void OnTmFeedingUngrip();
	afx_msg void OnTmFeedingGrip();
	afx_msg void OnTmChangGrip();
	afx_msg void OnTmChangUngrip();
	afx_msg void OnTmRewindUp();
	afx_msg void OnTmRewindDown();
	afx_msg void OnTmPressUp();
	afx_msg void OnTmPressDown();
	afx_msg void OnTmCutterUp();
	afx_msg void OnTmCutterDown();
	afx_msg void OnTmChuckUp();
	afx_msg void OnTmChuckDown();
	afx_msg void OnTmWaferUp();
	afx_msg void OnTmWaferDown();
	afx_msg void OnTmRingVacOn();
	afx_msg void OnTmRingVacOff();
	afx_msg void OnTmWafe1VacOn();
	afx_msg void OnTmWafe1VacOff();
	afx_msg void OnTmWafe2VacOn();
	afx_msg void OnTmWafe2VacOff();
	afx_msg void OnTmAlignUp();
	afx_msg void OnTmAlignDown();
	afx_msg void OnTmRwTapeGrip();
	afx_msg void OnTmRwTapeUngrip();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MANUALTAPEMOUNT_H__33797A4B_11FD_446A_ACF2_17FFB7BBFC5B__INCLUDED_)
